package com.ms.service.module.analysisgroup.db.model;

import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import com.xpec.c4.db.model.basic.BasicModel;

/**
 * 遊戲與玩家收支警報紀錄
 */
@Entity
@org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true)
@Table(name = GameRevenueAndExpenditureAlertLogModel.modelName)
public class GameRevenueAndExpenditureAlertLogModel extends BasicModel{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public static final String modelName = "game_revenue_and_expenditure_alert_log";

	/**警示紀錄類型 - 遊戲館*/
	public static final String ALERT_GAME_RECORD_TYPE = "Game";
	/**警示紀錄類型 - 玩家*/
	public static final String ALERT_PLAYER_RECORD_TYPE = "Player";
	/**警示紀錄類型 - 其餘C幣產出*/
	public static final String ALERT_OTHER_COIN_PAY_RECORD_TYPE = "Other_Coin_Pay";
	
	/**警示紀錄原因 - 正式幣達警示標準*/
	public static final String FORMAL_COIN_REACH_ALERT_VALUE = "FORMAL_COIN_REACH_ALERT_VALUE";
	/**警示紀錄原因 - 體驗幣達警示標準*/
	public static final String TRIAL_COIN_REACH_ALERT_VALUE = "TRIAL_COIN_REACH_ALERT_VALUE";
	
	
	private Integer recordID;
	
	/**遊戲或玩家名稱*/
	private String recordName;
	
	/**當下正式幣總押*/
	private BigDecimal totalBetFormal;
	
	/**當下正式幣總得分*/
	private BigDecimal totalScoreFormal;
	
	/**當下總JP*/
	private BigDecimal totalJP;
	
	/**當下試玩幣總押*/
	private BigDecimal totalBetTrial;
	
	/**當下試玩幣總得分*/
	private BigDecimal totalScoreTrial;
	
	/**紀錄時間*/
	private Date recordTime;
	
	/**紀錄原因*/
	private String recordReason;
	
	/**當下警示標準*/
	private BigDecimal alertValue;
	
	/**紀錄種類: 遊戲、玩家*/
	private String recordType;
	
	/**處理狀況*/
	private int handleStatus;
	
	/**處理紀錄*/
	private String handleMemo;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public Integer getRecordID() {
		return recordID;
	}

	public void setRecordID(Integer recordID) {
		this.recordID = recordID;
	}

	public String getRecordName() {
		return recordName;
	}

	public void setRecordName(String recordName) {
		this.recordName = recordName;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTotalBetFormal() {
		return totalBetFormal;
	}

	public void setTotalBetFormal(BigDecimal totalBetFormal) {
		this.totalBetFormal = totalBetFormal;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTotalScoreFormal() {
		return totalScoreFormal;
	}

	public void setTotalScoreFormal(BigDecimal totalScoreFormal) {
		this.totalScoreFormal = totalScoreFormal;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTotalJP() {
		return totalJP;
	}

	public void setTotalJP(BigDecimal totalJP) {
		this.totalJP = totalJP;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTotalBetTrial() {
		return totalBetTrial;
	}

	public void setTotalBetTrial(BigDecimal totalBetTrial) {
		this.totalBetTrial = totalBetTrial;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getTotalScoreTrial() {
		return totalScoreTrial;
	}

	public void setTotalScoreTrial(BigDecimal totalScoreTrial) {
		this.totalScoreTrial = totalScoreTrial;
	}

	public Date getRecordTime() {
		return recordTime;
	}

	public void setRecordTime(Date recordTime) {
		this.recordTime = recordTime;
	}

	public String getRecordReason() {
		return recordReason;
	}

	public void setRecordReason(String recordReason) {
		this.recordReason = recordReason;
	}

	@Column(precision = 19, scale = 2, columnDefinition = "DECIMAL(19,2) default 0.0")
	public BigDecimal getAlertValue() {
		return alertValue;
	}

	public void setAlertValue(BigDecimal alertValue) {
		this.alertValue = alertValue;
	}

	public String getRecordType() {
		return recordType;
	}

	public void setRecordType(String recordType) {
		this.recordType = recordType;
	}

	public int getHandleStatus() {
		return handleStatus;
	}

	public void setHandleStatus(int handleStatus) {
		this.handleStatus = handleStatus;
	}

	public String getHandleMemo() {
		return handleMemo;
	}

	public void setHandleMemo(String handleMemo) {
		this.handleMemo = handleMemo;
	}
	
}
